Systems and methods for estimating stability of a dataset

ABSTRACT

Disclosed embodiments may provide a framework to measure and leverage the observable attributes that most directly affect the data stability of a customer. In addition, embodiments track the dynamics of the observable components that sustain the data stability of a customer. Embodiments may be used to estimate the stability of a variety of conditions for various contexts, such as the stability of a computing system over time.

CROSS-REFERENCE TO RELATED APPLICATIONS

The present application is a continuation of U.S. patent applicationSer. No. 16/828,604, filed Mar. 24, 2020, which claims benefit from U.S.Provisional Patent Application 62/823,499, filed Mar. 25, 2019, whichare incorporated herein by reference in their entireties.

FIELD

The present disclosure relates generally to estimating stability of dataover time for a variety of contexts. In one example, the systems andmethods described herein may be used to estimate economic or financialstability of a customer based on observable attributes.

BACKGROUND

Customers often seek to obtain credit from a lending institution for avariety of purposes, such as a purchase a home, a car, or a business.When a decision is made by a lending institution to extend credit to acustomer, the creditworthiness of the customer may be assessed using amultitude of scores, rules, signals, and thresholds. These sets ofavailable credit scores and algorithms focus on the probability ofrepayment if the customer borrows money. These models may be optimizedto rank expected outcomes based on the likelihood to repay.

These models may compute the likelihood to repay based on the currentstate of the credit bureau attributes observed at decision time.Recently, credit bureaus have introduced trended attributes with thepurpose of reflecting the change of these attributes through time.However, the focus of these scores is still to predict creditworthinessin the immediate future and not over time. Customers, on the other hand,change through time. The economic and financial stability of thecustomer also changes through time. These changes may not be reflectedin ordinary credit bureau data.

SUMMARY

The systems and methods described herein address these downfalls oftypical credit bureau data, as well as other problems. Although eventsand decisions may be manifested in observable credit data, the dynamicsof these attributes through time, as well as the changes and decisionsmade by the customer, may not be reflected. A customer's personaleconomy is directly affected by these changes and the financialstability of the customer may be key to the ability of that customer torepay. Thus, while financial stability of the customer is critical, aproblem exists in that none of the off-the-shelf scores availableexplicitly model the components of a customer's personal economy thatdirectly affect the stability of the customer, particularly as thischanges over time. Disclosed embodiments address this need and others byproviding a framework to measure and leverage the observable attributesthat most directly affect the financial stability of the customer fromthe point of view of cash flow and balance sheet. In addition,embodiments track the dynamics of the observable components that sustainthe financial and economic stability of a customer.

According to some embodiments, a computer-implemented method isprovided. The method comprises repeatedly capturing one or more signalsrepresentative of dynamic data into a vector, creating a set of vectorsover time. The method further comprises mapping the set of vectors todirectionally similar template states. Mapping includes performingunsupervised clustering of the set of vectors. The method furthercomprises generating a time series of the directionally similar templatestates using the set of vectors over time. The method further comprisesgenerating features of the time series based on a sequence of thedirectionally similar template states in the time series. Generatingfeatures includes running the time series through a classificationalgorithm. The method further comprises applying the features of thetime series to a pre-defined model to determine a trend in in thedynamic data.

According to some embodiments, a computer-program product is provided.The computer-program product is tangibly embodied in a non-transitorymachine-readable storage medium, including instructions that, whenexecuted by one or more processors, cause the one or more processors toperform the steps of the above method.

According to some embodiments, a system is provided. The systemcomprises one or more processors, and one or more non-transitorymachine-readable storage media containing instructions that, whenexecuted on the one or more processors, cause the one or more processorsto perform operations including the steps of the above method.

This summary is not intended to identify key or essential features ofthe claimed subject matter, nor is it intended to be used in isolationto determine the scope of the claimed subject matter. The subject mattershould be understood by reference to appropriate portions of the entirespecification of this patent application, any or all drawings, and eachclaim.

The foregoing, together with other features and examples, will bedescribed in more detail below in the following specification, claims,and accompanying drawings.

BRIEF DESCRIPTION OF THE DRAWINGS

Illustrative embodiments are described in detail below with reference tothe following figures.

FIG. 1 depicts a high-level system diagram for estimating stability of adataset according to some embodiments;

FIG. 2 depicts a chart illustrating the inputs to the signal extractionengine according to some embodiments;

FIG. 3 depicts a detailed system diagram for estimating stability of adataset according to some embodiments;

FIG. 4 depicts a flow diagram illustrating the outputs from the systemand possible applications according to some embodiments;

FIG. 5 depicts a logic diagram illustrating how the Euclidean anddirectional similarity algorithms are applied to a set of templatestates according to some embodiments;

FIG. 6 depicts a flowchart illustrating a method for estimatingstability of a dataset according to some embodiments; and

FIG. 7 shows a computing system architecture including variouscomponents in electrical communication with each other using aconnection in accordance with various embodiments.

In the appended figures, similar components and/or features can have thesame reference label. Further, various components of the same type canbe distinguished by following the reference label by a dash and a secondlabel that distinguishes among the similar components. If only the firstreference label is used in the specification, the description isapplicable to any one of the similar components having the same firstreference label irrespective of the second reference label.

DETAILED DESCRIPTION

In the following description, for the purposes of explanation, specificdetails are set forth in order to provide a thorough understanding ofcertain inventive embodiments. However, it will be apparent that variousembodiments may be practiced without these specific details. The figuresand description are not intended to be restrictive. The word “exemplary”is used herein to mean “serving as an example, instance, orillustration.” Any embodiment or design described herein as “exemplary”is not necessarily to be construed as preferred or advantageous overother embodiments or designs.

Systems and methods described herein may estimate stability of a dynamicdataset over time. Some embodiments capture dynamic data in the form ofa set of vectors. The vectors may be mapped to directionally similartemplate states. A dictionary of template states may be used to identifywhich template state is closest to the vector. The identified templatestates may be organized in a time series corresponding to when theunderlying dynamic data was captured. Features of the time series may begenerated to identify stable states and transitory states. The sequenceof these states may be run through a classification algorithm toidentify trends in the underlying dynamic data.

These trends may be used for a variety of purposes. In one example,financial data of a customer, including balances and payments, may beused as input to determine the creditworthiness of the customer overtime. In another example, economic data of a region, financial index,business, or the like may be used as input to determine the economicstability of that entity over time. In still another example,performance data related to computing systems or electronics may becollected over time and analyzed to determine trends in stability andconsistency of the computing system over time. This data may be usefulin maximizing performance of the computing system over a long period oftime by observing changes and trends in data handling that can beaddressed.

The systems and methods described herein can be used in any contextwhere there is an inflow and an outflow quantity of a resource, as wellas the ability to borrow resources externally to balance the deficit.Examples of this are in workforce in an organization (wherein the labordeficit can be covered by temporary workers), fungible commodityresources for which there is supply, demand, and reserves (e.g., oil,gas, gold, money, etc.), systems that can allocate reserves in aparticular way and address real-time supply and demand (e.g.,electricity in the grid when the grid can keep and manage reservoirs ofenergy in the form of batteries, hydrogen cells, etc.).

FIG. 1 depicts a high-level system diagram 100 for estimating stabilityof a dataset according to some embodiments. A dataset stability system102, as illustrated in FIG. 1 , includes four components: a signalextraction engine 105, a vector mapping engine 110, a state sequencegeneration engine 115, and a sequence mining engine 120. Although shownand illustrated as having four components, it is contemplated that agreater or fewer number of components may be integrated into the datasetstability system 102 to perform the steps described herein. Further, itis contemplated that some of the steps performed by separate componentsof the dataset stability system 102 can be combined and performed by asingle component, or vice versa.

The signal extraction engine 105 may, in conjunction with a processor(not shown), capture signals representative of dynamic data into avector. For instance, the signal extraction engine 105 may obtain, fromone or more customer data sources 122, customer data 124 that may berepresentative of dynamic data for one or more customers. The one ormore customer data sources 122 may include public repositories ofcustomer information (e.g., demographic customer information,statistical data related to customers in a geographic region, etc.), aswell as sources with proprietary customer data (e.g., credit reportingagencies, billing services, medical services, etc.). For instance, thecustomer data 124 may include customer balances, payment ratios, changesin customer payments and transactions over time, changes in customerbalances over time, and the like. In the financial context, signals thatinfluence the balance sheet and cash flow dynamics may be computed andextrapolated onto a vector comprising the various values. Exemplaryvalues that may be used to build the vector are discussed herein withrespect to FIG. 2 . The signal extraction engine 105 may be implementedas a standalone computer system of the dataset stability system 102, asan application or other software implemented on to one or more computersystems of the dataset stability system 102, and the like.

The vector mapping engine 110 may, in conjunction with a processor (notshown), map the vectors generated by the signal extraction engine 105 todirectionally similar template states. In some embodiments, the vectorsmay be mapped to the directionally similar template states by performingunsupervised clustering. For example, a dictionary of template statesmay be created and the closest template state to the vector may beselected. The dictionary of template states may be created by collectinga large representative amount of dynamic data, computing vectors in fivedimensions, performing unsupervised clustering, and selecting the mostrepresentative template states. For instance, the large representativeamount of dynamic data may include training data that includes a set ofinput vectors without any corresponding target values. A machinelearning algorithm that relies on unsupervised learning may beimplemented by the vector mapping engine 110 to identify differentclusters from the training data that may be used to define thedictionary of template states. Each cluster may correspond to adifferent state, whereby each state may correspond to the stability andpolarity of the members of the cluster in terms of expected futurestability.

In an embodiment, the vector mapping engine 110 utilizes a clustercentroid algorithm to generate the set of clusters, or states, for thedictionary of template states. This cluster centroid algorithm mayrelies on the k-Means clustering algorithm to perform clustering of thetraining data to generate the dictionary of template states. The k-Meansalgorithm may be used to store k centroids, which may be used to definea set of clusters. A data point is within a particular cluster if thedata point is closer the centroid of that cluster than any othercentroid. A system executing the cluster centroid algorithm may utilizethe k-Means algorithm to cluster the training data into an N number ofclusters. The system may determine the centroid of each of the Nclusters and the data points of these clusters are replaced by the Nnumber of cluster centroids. These cluster centroids may be defined asthe different states for the dictionary of template states. It should benoted that different clustering algorithms may be implemented by thevector mapping engine 110, such as mean-shift clustering algorithms,Density-Based Spatial Clustering of Applications with Noise (DB SCAN),Expectation-Maximization (EM) Clustering using Gaussian Mixture Models(GMM), agglomerative hierarchical clustering, and the like.

In an embodiment, the clustering of obtained data is carried out usingdirectional similarity to determine which cluster each data point of theobtained data corresponds to. For instance, the vector mapping engine110 may determine a directional similarity measure for each vectoragainst the various clusters of the dictionary of states using cosinesimilarity (e.g., normalized dot product between two vectors), Pearson'scorrelation, and the like. These vectors may be mapped to a discretevalue by finding the closest template in the dictionary of states. Thedistance between the vector and the closest template state may be anormalized Euclidean distance (e.g., the ordinary distance between thevector and the centroid of the nearest cluster). The vector mappingengine 110 may be implemented as a standalone computer system of thedataset stability system 102, as an application or other softwareimplemented on to one or more computer systems of the dataset stabilitysystem 102, and the like.

The state sequence generation engine 115 may, in conjunction with aprocessor (not shown), generate a time series of template states over aperiod of time or over history. In other words, the state sequencegeneration engine 115 may create a time ordered sequence of the templatestates. Once the time series has been generated, the time series can beanalyzed to identify one or more features. Features may be identifiedbased on the sequence of the template states and the strings of templatestates created. For example, three stable states followed by onetransitory state may be associated with a negative feature, because themost recent state is unstable.

The sequence mining engine 120 may, in conjunction with a processor (notshown), leverage the time series of template states in classificationalgorithms through data mining in some embodiments. In some embodiments,other sequence-based statistical methods may be used. The output of thesequence mining engine 120 may be used to determine trend data 126 fromthe dynamic data used to generate the vectors, such as stability orinstability, and to draw conclusions based on the trend data 126. Insome embodiments, the trend data 126 may be reflected as a score orgrade representing the stability of the dynamic data. In an embodiment,the different trends correspond to characteristics determined viahistorical analysis of different trends over time for various customersand other entities. The sequence mining engine 120 may, thus, identify acorresponding trend based on an analysis of the time series datacompared to the various historical analysis of different trends observedover time. These historical analyses may be obtained from any suitableauthoritative source (e.g., government agencies, financial regulationagencies, credit agencies, etc.).

FIG. 2 depicts a chart 200 illustrating the inputs to the signalextraction engine 105 according to some embodiments. The inputsillustrated in FIG. 2 are exemplary and apply to some embodiments inwhich financial stability of a person or organization is analyzed. Asshown in FIG. 2 , some exemplary inputs include current balance ofrevolving trades 210, current balance on installment trades 215, currentpayment ratio on revolving trades 220, change in non-mortgage actualpayments 225, and change in non-mortgage balances 230. Although shownand described as having five inputs, it is contemplated that a greateror less number of inputs may be fed into the signal extraction engine105. Further, it is contemplated that different inputs may be utilizedin different contexts. It should be noted that while financial inputsare illustrated and used throughout the present disclosure for thepurpose of illustration, other inputs may be utilized by the datasetstability system to determine the data-specific stability of a person,organization, or other entity. For instance, inputs may include datathat may be used to determine, among other things, the stability of aperson's medical health, the stability of a person's driving history fordetermining insurability, and the like. Further, the inputs may includedata that is not necessarily associated with a person or organization.For instance, inputs may include data associated with a geographicregion, other persons and/or organizations, and the like that may beused to determine a person's or organization's stability relative to thegeographic region, other persons and/or organizations, etc.

The various inputs illustrated in FIG. 2 may be obtained from one ormore data sources. For instance, a subset of the one or more inputs maybe obtained from a public repository of customer data, such as anonymouscustomer data corresponding to customers in a particular geographicarea, to customers of a retailer or set of retailers, customerdemographics, and the like. A subset of the one or more inputs may alsobe obtained from other sources, such as credit reporting agencies,billing services, medical services, or other sources that may maintainproprietary or sensitive data of a person or organization.

The various inputs may be obtained synchronously or asynchronously. Forinstance, in an embodiment, the signal extraction engine 105 querieseach of the available data sources at particular time intervals toobtain the various inputs that may be used to determine thedata-specific stability of a person or organization. Alternatively, thesignal extraction engine 105 may obtain the various inputs as theseinputs are generated by corresponding data sources. For instance, thevarious inputs may be updated by the various data sources at differenttimes based on personal or organizational actions that impact each ofthe various inputs. For example, the current balance of revolving trades210 may change at a different time compared to changes in non-mortgagebalances 230 and changes in non-mortgage actual payments 225. Further,each of the inputs may be updated at different time intervals by thecorresponding data source (e.g., a balance may be updated bi-weeklywhile changes in payments may be updated monthly, etc.). Thus, thevarious inputs may be received by the signal extraction engine 105 atdifferent time intervals or in real-time depending on how the variousdata sources push the inputs to the signal extraction engine 105.

In an embodiment, the signal extraction engine 105 processes the variousinputs as they are received by the signal extraction engine 105, asdescribed herein. Alternatively, the signal extraction engine 105 mayprocess the various inputs at particular time intervals, whereby inputsobtained between consecutive time periods are processed regardless ofwhether all acceptable types of inputs are obtained between theconsecutive time periods or not. In another embodiment, the signalextraction engine 105 processes the various inputs once each of theinputs has been obtained from the various data sources. For instance,the signal extraction engine 105 may evaluate each of the inputsobtained from each of the data sources to determine whether a change tothe input has occurred from a time at which the signal extraction engine105 previous processed an earlier version of the input. Once the signalextraction engine 105 has determined that each of the inputs includesnew data, the signal extraction engine 105 may process the inputs asdescribed herein.

Current balance of revolving trades 210 may be a measure of credit beingused on a revolving account, such as a credit card or a home equity lineof credit. Current balance on installment trades 215 may be a measure ofcredit being used that is being paid back over time on a fixed paymentper month, for example, without additional credit becoming available.Exemplary installment trades include student loans, car loans,mortgages, and the like. Current payment ratio on revolving trades 220reflects a ratio of how many times just the minimum payment is beingmade on a revolving trade. Change in non-mortgage actual payments 225looks at changes in payments (i.e., increases or decreases) to detect atrend. Change in non-mortgage balances 230 looks at changes in balances(i.e., increases or decreases) to detect a trend. These inputs may bereflective of how stable or unstable a customer is. As noted above, eachof these inputs may be obtained from various data sources or from asingular data source.

FIG. 3 depicts a detailed system diagram 300 for estimating stability ofa dataset according to some embodiments. Input data 305 may be fed intothe signal extraction engine 105. The input data 305 may be, forexample, the input data described with respect to FIG. 2 . In someembodiments, the input data 305 may include bureau data. As noted above,the input data 305 may be obtained from various data sources, such as acredit bureau, credit reporting agencies, billing services, medicalservices, or other sources that may maintain proprietary or sensitivedata of a person or organization. The input data 305 may also includepublicly available data from one or more public repositories of data(e.g., census data, demographic data, statistical data for a geographicregion, etc.).

The signal extraction engine 105 may measure, as an illustrativeexample, payments and balances 310 from the input data 305. In someembodiments, the balances may be broken down into revolving balances andinstallment balances. In some embodiments, the payments may exclude themortgage payments. In some embodiments, the payments and balances mayinclude the average rate of change in the balances and in the paymentsin a period of time. The rates of change may be computed using robustnon-parametric algorithms or robust statistical algorithms. The signalextraction engine 105 may measure these payments and balances inresponse to obtaining the input data 305 from the various data sourcesin real-time. Alternatively, the signal extraction engine 105 may querythese data sources at particular time intervals to obtain the input data305 that may be used to measure the payments and balances. In someinstances, the signal extraction engine 105 may measure the payments andbalances at particular time intervals using the input data 305 obtainedbetween consecutive time intervals. In other instances, the signalextraction engine 105 may process the input data 305 in response to atriggering event, such as a change in regulatory standards that mayimpact a customer's creditworthiness, an event that may impact thecreditworthiness of various customers in a particular geographic region,and the like.

The vector mapping engine 110 may compute the non-parametric rate ofchange 315 and integrate the data into a vector 320. The state sequencegeneration engine 115 may feed the vector 320 and a set of Euclidean anddirectional similarity algorithms 323 into a discretization engine 325along with a dictionary of states 345. The dictionary of states may bemade up of stable states 350 and transitory states 355. Unsupervisedclustering 360 may be performed to categorize all states into thedictionary of states 345. The states in the dictionary of states 345 maybe grouped, or clustered, by their stability and polarity in terms ofexpected future stability. The groupings may be carried out usingdirectional similarity. In some embodiments, directional similarity maybe carried out using cosine similarity. The discretization engine 325may map the vectors to a discrete value by finding the closest templatein the dictionary of states 345. The distance between the vector and theclosest template state may be a normalized Euclidean distance.

The dictionary of states 345 may be created by collecting a largerepresentative amount of dynamic data, computing vectors in fivedimensions, performing unsupervised clustering, and selecting the mostrepresentative template states. For instance, the large representativeamount of dynamic data may include training data that includes a set ofinput vectors without any corresponding target values. A machinelearning algorithm that relies on unsupervised learning or clusteringmay be implemented to identify different clusters from the training datathat may be used to define the dictionary of states 345. Each clustermay correspond to a different state, whereby each state may correspondto the stability and polarity of the members of the cluster in terms ofexpected future stability.

The output of the discretization engine 325 may be used as input intosequence stacking 330, which may be performed by the sequence miningengine 120. In sequence stacking 330, sequences of states may becomputed from historical data. For instance, the sequence mining engine120, via sequence stacking 330, may aggregate a series of statesidentified over time from the discretization engine 325. The sequencemining engine 120 may define a time period for a series of states thatis to define a particular sequence of states. For example, the sequencemining engine 120 may aggregate a set of number of consecutive statesinto a sequence of states. Alternatively, the sequence mining engine 120may aggregate any number of states obtained over a time period togenerate the sequence of states. Once a sequence or time series ofstates is obtained, the time series may be fed into feature generation335. In some embodiments, the time series may be introduced into amachine learning algorithm. After the features are generated andidentified, the features may be passed into mining and classificationalgorithms 340, resulting in output data 390. Mining and classificationalgorithms 340 may mine the sequence of states to find the most unique,salient, or predictive characteristics. Output data 390 may bereflective of trends in the input data 305, such as, for example, ascore or grade of stability in the input data 305.

In an embodiment, the mining and classification algorithms 340 maydetermine that a sequence of states correspond to one or morecharacteristics based on a historical analysis of different trends overtime for various customers and other entities. The mining andclassification algorithms 340 may, thus, identify a corresponding trendbased on an analysis of the time series data compared to the varioushistorical analysis of different trends observed over time. Thesehistorical analyses may be obtained from any suitable authoritativesource (e.g., government agencies, financial regulation agencies, creditagencies, etc.). The output data 390 may, thus, also be reflective ofthese characteristics for the customer or organization.

FIG. 4 depicts a flow diagram 400 illustrating the outputs from thedataset stability system and possible applications for these outputsaccording to some embodiments. As shown in FIG. 4 , sequence stacking330 may be used for subsequence identification 405 and pattern mining410. Subsequence identification 405 and pattern mining 410 may be usedto identify customer credit triggers 415. This is a possible applicationof the system described herein to account management 450. For instance,based on the various subsequences and patterns identified by the system,the system may identify one or more customer credit triggers that may beused to determine certain characteristics of a customer. As an example,a customer credit trigger may serve as a signal that the customer islikely preparing for a future transaction or is open to obtaining a newline of credit. This may cause the system to approach the customer withan offer for a new line of credit or other products that the customermay be interested in based on these identified triggers.

Alternatively or additionally, pattern mining 410 may be used toidentify portfolio macro trends. This is a possible application of thedataset stability system described herein to portfolio analysis 455. Forinstance, based on a customer's sequence of states over a period oftime, the system may identify a set of trends corresponding to customermanagement of its portfolio based on one or more external factors (e.g.,market volatility, global recessions, bear or bull markets, etc.).Further, the system may identify one or more characteristics of thecustomer with regard to how the customer manages its portfolio overtime. These portfolio macro trends 420 may be used to analyze thecustomer's portfolio and determine how best to manage the customer'sportfolio. This may include offering the customer with various optionsto automatically manage the customer's portfolio subject to preferencesdetermined based on the portfolio macro trends 420. Additionally, theportfolio analysis 455 may result in identifying possible changes to thecustomer's portfolio based on the customer's portfolio macro trends 420and/or identify avenues for improvement of the customer's portfolio thatmay run counter to a customer's usual trends for the management of itsportfolio.

Feature generation 335 may be used for customer and prospect scoring425. Customer and prospect scoring 425 may be used for prospecttargeting 430. This is a possible application of the system describedherein to acquisition and marketing 460. For instance, if the systemdetermines that, based on one or more customer features, that thecustomer is a good prospect for one or more products or services, thecustomer may be approached with offers for said products or services. Asan example, if based on the various features for a customer the systemdetermines that the customer is experiencing sudden credit issues, thesystem may turn to acquisition and marketing 460 to provide creditconsolidation services, balance transfer services, and the like.

Alternatively or additionally, customer and prospect scoring 425 may beused for account decisioning 435. This is a possible application of thesystem described herein to underwriting 465. For instance, based on thecustomer and prospect scoring 425, the system may determine the possiblerisk in providing credit or otherwise provide one or more lendingservices to a customer. This may be of importance in determining whetherto approve a customer's request for a line of credit, for a loan, orother financial service. The customer and prospect scoring 425 may serveas an addition or alternative to traditional customer credit scoring,which may not take into account the volatility (or lack thereof) of thevarious customer states over time.

FIG. 5 depicts a logic diagram 500 illustrating how the Euclidean anddirectional similarity algorithms 323 are applied to a set of templatestates 505 according to some embodiments. For each vector, i, in the setof template states 505, and for each vector, j, in the set of templatestates 505, if i is not equal to j (e.g., if i !=j 520), the similaritySi,j may be computed 525. For instance, using the Euclidean anddirectional similarity algorithms 323, the state sequence generationengine described above may utilize cosine similarity (e.g., the cosineof the angle between the vectors i and j to determine whether thevectors are directionally similar). Using cosine similarity, thesimilarity score, Si,j, may vary between −1 (e.g., vectors arediametrically opposed) to +1 (e.g., vectors have same orientation),whereby a value of 0 denotes decorrelation between the two vectors.

If Si,j, the similarity score for the vectors i and j, is greater than athreshold 530, a tuplet <i, j, Si,j> may be added to a set of links 535.The threshold may be determined based on the direction of existingvectors corresponding to the centroids of different clusters in thedictionary of states. Further, the threshold may be determined based onhistorical analysis regarding predictive qualities of the dictionary ofstates with regard to previously classified vectors. Based on the set oflinks, connected components may be identified 540.

FIG. 6 depicts a flowchart 600 illustrating a method for estimatingstability of a dataset according to some embodiments. At step 605, oneor more signals representative of dynamic data are repeatedly captured.The one or more signals may be obtained from one or more data sources.For instance, the one or more signals may be obtained from one or morepublic repositories of data (e.g., census data, demographic data,statistical data for a geographic region, etc.). Additionally, the oneor more signals may be obtained from one or more sources that maintainproprietary or sensitive information of persons and/or organizations(e.g., credit reporting agencies, billing services, medical services,etc.). For instance, the one or more signals may include customerbalances, payment ratios, changes in customer payments and transactionsover time, changes in customer balances over time, and the like.

The one or more signals captured by the dataset stability system may beused to generate a set of vectors that may be used to determine thestability (or lack thereof) of a customer (e.g., person ororganization). For instance, captured signals, over time, may result ina set of vectors. In some embodiments, the dynamic data may include arate of change in payments and balances over time. In some embodiments,the rate of change is computed using a robust non-parametric algorithmor a robust statistical algorithm.

At step 610, the set of vectors is mapped to directionally similartemplate states. Mapping includes performing unsupervised clustering ofthe set of vectors in some embodiments. In an embodiment, to generate adictionary of template states that can be used for mapping the set ofvectors to directionally similar template states, a representativeamount of dynamic data may be obtained that includes training data. Thetraining data may include a set of input vectors without anycorresponding target values. A machine learning algorithm that relies onunsupervised learning may be implemented by the dataset stability systemto identify different clusters from the training data that may be usedto define the dictionary of template states. Each cluster may correspondto a different state, whereby each state may correspond to the stabilityand polarity of the members of the cluster in terms of expected futurestability.

In an embodiment, the set of vectors can be mapped to directionallysimilar template states according to other methods, including supervisedclustering. For instance, the dataset stability system may utilize atraining dataset corresponding to one or more known customercharacteristics, features, and or trends as input to a machine learningmodel to determine whether the machine learning model is producingaccurate classification of the training dataset as corresponding to theknown customer characteristics, features, and or trends. If the machinelearning model produces an output that does not correspond to the knowncustomer characteristics, features, and or trends, the dataset stabilitysystem may revise the machine learning model by updating one or moremodel coefficients and re-inputting the training dataset through theupdated machine learning model. This iterative process may continueuntil the machine learning model is capable of producing expectedoutputs from the training dataset. In some embodiments, as the machinelearning model is used to generate features and trends, these may beevaluated by end users (e.g., organizations relying on features andtrends to support customers and other entities, etc.), which may providefeedback to the dataset stability system. Based on this feedback, thedataset stability system may update the model to produce more accurateresults.

In some embodiments, the set of vectors is mapped to directionallysimilar template states by computing a distance between the set ofvectors and the directionally similar template states. In someembodiments, the distance is a normalized Euclidean distance. In someembodiments, the set of vectors are mapped to directionally similartemplate states using cosine similarity. For instance, the clustering ofobtained data may be carried out using directional similarity todetermine which cluster each data point of the obtained data correspondsto. The dataset stability system may determine a directional similaritymeasure for each vector against the various clusters of the dictionaryof states using cosine similarity, Pearson's correlation, and the like.These vectors may be mapped to a discrete value by finding the closesttemplate state in the dictionary of states. The distance between thevector and the closest template state may be a normalized Euclideandistance (e.g., the ordinary distance between the vector and thecentroid of the nearest cluster).

At step 615, a time series of the directionally similar template statesis generated. The time series is generated using the set of vectors overtime. For instance, the dataset stability system may generate, for aparticular set of data for a customer or organization and for aparticular period of time, a time series of the set of vectorsdetermined for the customer or organization based on the signalsobtained from the various sources. The time series may arrange thetemplate states into a series according to when the underlying dynamicdata was generated. Further, the time series may be illustrative of anychanges (or lack thereof) of the centroids of the clusters that denoteeach of the different template states.

At step 620, one or more features associated with the time series isgenerated. A feature is generated using a sequence corresponding to oneor more directionally similar template states in the time series.Generating features includes running the time series through aclassification algorithm. The classification algorithm may include alogistic regression algorithm, random forest models, Naïve Bayes models,linear regression models, decision tree models, K-Means clusteringmodels, k-Nearest Neighbors (kNN) models, support-vector machine (SVM)models, gradient boosting machine models, and the like. Theclassification algorithm may associate a particular sequence to aclassification (e.g., feature) of a set of classifications. While asequence may not be a direct match for a particular classification, theclassification algorithm may utilize a similarity measure to identifythe closest classification that may correspond to the sequence. In someembodiments, generating features further includes performing data miningon the time series.

At step 625, the features of the time series are applied to apre-defined model to determine a trend in the dynamic data. Thepre-defined model may be a machine learning model configured to use thefeatures as input to identify one or more trends in the dynamic data.The machine learning model may be trained using a training dataset withknown trends that may serve as a ground-truth for the model. If themodel produces a set of trends that do not correspond to theground-truth, the dataset similarity system may update the model. Oncethe model has been trained using the training dataset, the datasetstability system may implement the model for determining trends inobtained dynamic data. It should be noted that the pre-defined model maybe generated and trained using supervised or unsupervised learningtechniques.

The trend may correspond to a score or grade reflective of stability insome embodiments. In some embodiments, the method may further includeintroducing the set of vectors into a machine learning algorithm, suchas the machine learning algorithms described above, to determine thetrend or set of trends that may serve as an indication of the stability(or lack thereof) of the obtained signals over time. These trends may beused to determine how best to service a customer or organization, suchas described above in connection with FIG. 4 .

FIG. 7 illustrates a computing system architecture 700 including variouscomponents in electrical communication with each other using aconnection 706, such as a bus, in accordance with some implementations.Example system architecture 700 includes a processing unit (CPU orprocessor) 704 and a system connection 706 that couples various systemcomponents including the system memory 720, such as ROM 718 and RAM 716,to the processor 704. The system architecture 700 can include a cache702 of high-speed memory connected directly with, in close proximity to,or integrated as part of the processor 704. The system architecture 700can copy data from the memory 720 and/or the storage device 708 to thecache 702 for quick access by the processor 704. In this way, the cachecan provide a performance boost that avoids processor 704 delays whilewaiting for data. These and other modules can control or be configuredto control the processor 704 to perform various actions.

Other system memory 720 may be available for use as well. The memory 720can include multiple different types of memory with differentperformance characteristics. The processor 704 can include any generalpurpose processor and a hardware or software service, such as service 1710, service 2 712, and service 3 714 stored in storage device 708,configured to control the processor 704 as well as a special-purposeprocessor where software instructions are incorporated into the actualprocessor design. The processor 704 may be a completely self-containedcomputing system, containing multiple cores or processors, a bus, memorycontroller, cache, etc. A multi-core processor may be symmetric orasymmetric.

To enable user interaction with the computing system architecture 700,an input device 722 can represent any number of input mechanisms, suchas a microphone for speech, a touch-sensitive screen for gesture orgraphical input, keyboard, mouse, motion input, speech and so forth. Anoutput device 724 can also be one or more of a number of outputmechanisms known to those of skill in the art. In some instances,multimodal systems can enable a user to provide multiple types of inputto communicate with the computing system architecture 700. Thecommunications interface 726 can generally govern and manage the userinput and system output. There is no restriction on operating on anyparticular hardware arrangement and therefore the basic features heremay easily be substituted for improved hardware or firmware arrangementsas they are developed.

Storage device 708 is a non-volatile memory and can be a hard disk orother types of computer readable media which can store data that areaccessible by a computer, such as magnetic cassettes, flash memorycards, solid state memory devices, digital versatile disks, cartridges,RAMs 716, ROM 718, and hybrids thereof.

The storage device 708 can include services 710, 712, 714 forcontrolling the processor 704. Other hardware or software modules arecontemplated. The storage device 708 can be connected to the systemconnection 706. In one aspect, a hardware module that performs aparticular function can include the software component stored in acomputer-readable medium in connection with the necessary hardwarecomponents, such as the processor 704, connection 706, output device724, and so forth, to carry out the function.

The disclosed methods can be performed using a computing system. Anexample computing system can include a processor (e.g., a centralprocessing unit), memory, non-volatile memory, and an interface device.The memory may store data and/or and one or more code sets, software,scripts, etc. The components of the computer system can be coupledtogether via a bus or through some other known or convenient device. Theprocessor may be configured to carry out all or part of methodsdescribed herein for example by executing code for example stored inmemory. One or more of a user device or computer, a provider server orsystem, or a suspended database update system may include the componentsof the computing system or variations on such a system.

This disclosure contemplates the computer system taking any suitablephysical form, including, but not limited to a Point-of-Sale system(“POS”). As example and not by way of limitation, the computer systemmay be an embedded computer system, a system-on-chip (SOC), asingle-board computer system (SBC) (such as, for example, acomputer-on-module (COM) or system-on-module (SOM)), a desktop computersystem, a laptop or notebook computer system, an interactive kiosk, amainframe, a mesh of computer systems, a mobile telephone, a personaldigital assistant (PDA), a server, or a combination of two or more ofthese. Where appropriate, the computer system may include one or morecomputer systems; be unitary or distributed; span multiple locations;span multiple machines; and/or reside in a cloud, which may include oneor more cloud components in one or more networks. Where appropriate, oneor more computer systems may perform without substantial spatial ortemporal limitation one or more steps of one or more methods describedor illustrated herein. As an example and not by way of limitation, oneor more computer systems may perform in real time or in batch mode oneor more steps of one or more methods described or illustrated herein.One or more computer systems may perform at different times or atdifferent locations one or more steps of one or more methods describedor illustrated herein, where appropriate.

The processor may be, for example, be a conventional microprocessor suchas an Intel Pentium microprocessor or Motorola power PC microprocessor.One of skill in the relevant art will recognize that the terms“machine-readable (storage) medium” or “computer-readable (storage)medium” include any type of device that is accessible by the processor.

The memory can be coupled to the processor by, for example, a bus. Thememory can include, by way of example but not limitation, random accessmemory (RAM), such as dynamic RAM (DRAM) and static RAM (SRAM). Thememory can be local, remote, or distributed.

The bus can also couple the processor to the non-volatile memory anddrive unit. The non-volatile memory is often a magnetic floppy or harddisk, a magnetic-optical disk, an optical disk, a read-only memory(ROM), such as a CD-ROM, EPROM, or EEPROM, a magnetic or optical card,or another form of storage for large amounts of data. Some of this datais often written, by a direct memory access process, into memory duringexecution of software in the computer. The non-volatile storage can belocal, remote, or distributed. The non-volatile memory is optionalbecause systems can be created with all applicable data available inmemory. A typical computer system will usually include at least aprocessor, memory, and a device (e.g., a bus) coupling the memory to theprocessor.

Software can be stored in the non-volatile memory and/or the drive unit.Indeed, for large programs, it may not even be possible to store theentire program in the memory. Nevertheless, it should be understood thatfor software to run, if necessary, it is moved to a computer readablelocation appropriate for processing, and for illustrative purposes, thatlocation is referred to as the memory herein. Even when software ismoved to the memory for execution, the processor can make use ofhardware registers to store values associated with the software, andlocal cache that, ideally, serves to speed up execution. As used herein,a software program is assumed to be stored at any known or convenientlocation (from non-volatile storage to hardware registers), when thesoftware program is referred to as “implemented in a computer-readablemedium.” A processor is considered to be “configured to execute aprogram” when at least one value associated with the program is storedin a register readable by the processor.

The bus can also couple the processor to the network interface device.The interface can include one or more of a modem or network interface.It will be appreciated that a modem or network interface can beconsidered to be part of the computer system. The interface can includean analog modem, Integrated Services Digital network (ISDN0 modem, cablemodem, token ring interface, satellite transmission interface (e.g.,“direct PC”), or other interfaces for coupling a computer system toother computer systems. The interface can include one or more inputand/or output (I/O) devices. The I/O devices can include, by way ofexample but not limitation, a keyboard, a mouse or other pointingdevice, disk drives, printers, a scanner, and other input and/or outputdevices, including a display device. The display device can include, byway of example but not limitation, a cathode ray tube (CRT), liquidcrystal display (LCD), or some other applicable known or convenientdisplay device.

In operation, the computer system can be controlled by operating systemsoftware that includes a file management system, such as a diskoperating system. One example of operating system software withassociated file management system software is the family of operatingsystems known as Windows® from Microsoft Corporation of Redmond, WA, andtheir associated file management systems. Another example of operatingsystem software with its associated file management system software isthe Linux™ operating system and its associated file management system.The file management system can be stored in the non-volatile memoryand/or drive unit and can cause the processor to execute the variousacts required by the operating system to input and output data and tostore data in the memory, including storing files on the non-volatilememory and/or drive unit.

Some portions of the detailed description may be presented in terms ofalgorithms and symbolic representations of operations on data bitswithin a computer memory. These algorithmic descriptions andrepresentations are the means used by those skilled in the dataprocessing arts to most effectively convey the substance of their workto others skilled in the art. An algorithm is here, and generally,conceived to be a self-consistent sequence of operations leading to adesired result. The operations are those requiring physicalmanipulations of physical quantities. Usually, though not necessarily,these quantities take the form of electrical or magnetic signals capableof being stored, transferred, combined, compared, and otherwisemanipulated. It has proven convenient at times, principally for reasonsof common usage, to refer to these signals as bits, values, elements,symbols, characters, terms, numbers, or the like.

It should be borne in mind, however, that all of these and similar termsare to be associated with the appropriate physical quantities and aremerely convenient labels applied to these quantities. Unlessspecifically stated otherwise as apparent from the following discussion,it is appreciated that throughout the description, discussions utilizingterms such as “processing” or “computing” or “calculating” or“determining” or “displaying” or “generating” or the like, refer to theaction and processes of a computer system, or similar electroniccomputing device, that manipulates and transforms data represented asphysical (electronic) quantities within registers and memories of thecomputer system into other data similarly represented as physicalquantities within the computer system memories or registers or othersuch information storage, transmission or display devices.

The algorithms and displays presented herein are not inherently relatedto any particular computer or other apparatus. Various general purposesystems may be used with programs in accordance with the teachingsherein, or it may prove convenient to construct more specializedapparatus to perform the methods of some examples. The requiredstructure for a variety of these systems will appear from thedescription below. In addition, the techniques are not described withreference to any particular programming language, and various examplesmay thus be implemented using a variety of programming languages.

In various implementations, the system operates as a standalone deviceor may be connected (e.g., networked) to other systems. In a networkeddeployment, the system may operate in the capacity of a server or aclient system in a client-server network environment, or as a peersystem in a peer-to-peer (or distributed) network environment.

The system may be a server computer, a client computer, a personalcomputer (PC), a tablet PC, a laptop computer, a set-top box (STB), apersonal digital assistant (PDA), a cellular telephone, an iPhone, aBlackberry, a processor, a telephone, a web appliance, a network router,switch or bridge, or any system capable of executing a set ofinstructions (sequential or otherwise) that specify actions to be takenby that system.

While the machine-readable medium or machine-readable storage medium isshown, by way of example, to be a single medium, the term“machine-readable medium” and “machine-readable storage medium” shouldbe taken to include a single medium or multiple media (e.g., acentralized or distributed database, and/or associated caches andservers) that store the one or more sets of instructions. The term“machine-readable medium” and “machine-readable storage medium” shallalso be taken to include any medium that is capable of storing,encoding, or carrying a set of instructions for execution by the systemand that cause the system to perform any one or more of themethodologies or modules of disclosed herein.

In general, the routines executed to implement the implementations ofthe disclosure, may be implemented as part of an operating system or aspecific application, component, program, object, module or sequence ofinstructions referred to as “computer programs.” The computer programstypically comprise one or more instructions set at various times invarious memory and storage devices in a computer, and that, when readand executed by one or more processing units or processors in acomputer, cause the computer to perform operations to execute elementsinvolving the various aspects of the disclosure.

Moreover, while examples have been described in the context of fullyfunctioning computers and computer systems, those skilled in the artwill appreciate that the various examples are capable of beingdistributed as a program object in a variety of forms, and that thedisclosure applies equally regardless of the particular type of machineor computer-readable media used to actually effect the distribution.

Further examples of machine-readable storage media, machine-readablemedia, or computer-readable (storage) media include but are not limitedto recordable type media such as volatile and non-volatile memorydevices, floppy and other removable disks, hard disk drives, opticaldisks (e.g., Compact Disk Read-Only Memory (CD ROMS), Digital VersatileDisks, (DVDs), etc.), among others, and transmission type media such asdigital and analog communication links.

In some circumstances, operation of a memory device, such as a change instate from a binary one to a binary zero or vice-versa, for example, maycomprise a transformation, such as a physical transformation. Withparticular types of memory devices, such a physical transformation maycomprise a physical transformation of an article to a different state orthing. For example, but without limitation, for some types of memorydevices, a change in state may involve an accumulation and storage ofcharge or a release of stored charge. Likewise, in other memory devices,a change of state may comprise a physical change or transformation inmagnetic orientation or a physical change or transformation in molecularstructure, such as from crystalline to amorphous or vice versa. Theforegoing is not intended to be an exhaustive list of all examples inwhich a change in state for a binary one to a binary zero or vice-versain a memory device may comprise a transformation, such as a physicaltransformation. Rather, the foregoing is intended as illustrativeexamples.

A storage medium typically may be non-transitory or comprise anon-transitory device. In this context, a non-transitory storage mediummay include a device that is tangible, meaning that the device has aconcrete physical form, although the device may change its physicalstate. Thus, for example, non-transitory refers to a device remainingtangible despite this change in state.

The above description and drawings are illustrative and are not to beconstrued as limiting the subject matter to the precise forms disclosed.Persons skilled in the relevant art can appreciate that manymodifications and variations are possible in light of the abovedisclosure. Numerous specific details are described to provide athorough understanding of the disclosure. However, in certain instances,well-known or conventional details are not described in order to avoidobscuring the description.

As used herein, the terms “connected,” “coupled,” or any variant thereofwhen applying to modules of a system, means any connection or coupling,either direct or indirect, between two or more elements; the coupling ofconnection between the elements can be physical, logical, or anycombination thereof. Additionally, the words “herein,” “above,” “below,”and words of similar import, when used in this application, shall referto this application as a whole and not to any particular portions ofthis application. Where the context permits, words in the above DetailedDescription using the singular or plural number may also include theplural or singular number respectively. The word “or,” in reference to alist of two or more items, covers all of the following interpretationsof the word: any of the items in the list, all of the items in the list,or any combination of the items in the list.

Those of skill in the art will appreciate that the disclosed subjectmatter may be embodied in other forms and manners not shown below. It isunderstood that the use of relational terms, if any, such as first,second, top and bottom, and the like are used solely for distinguishingone entity or action from another, without necessarily requiring orimplying any such actual relationship or order between such entities oractions.

While processes or blocks are presented in a given order, alternativeimplementations may perform routines having steps, or employ systemshaving blocks, in a different order, and some processes or blocks may bedeleted, moved, added, subdivided, substituted, combined, and/ormodified to provide alternative or sub combinations. Each of theseprocesses or blocks may be implemented in a variety of different ways.Also, while processes or blocks are at times shown as being performed inseries, these processes or blocks may instead be performed in parallel,or may be performed at different times. Further any specific numbersnoted herein are only examples: alternative implementations may employdiffering values or ranges.

The teachings of the disclosure provided herein can be applied to othersystems, not necessarily the system described above. The elements andacts of the various examples described above can be combined to providefurther examples.

Any patents and applications and other references noted above, includingany that may be listed in accompanying filing papers, are incorporatedherein by reference. Aspects of the disclosure can be modified, ifnecessary, to employ the systems, functions, and concepts of the variousreferences described above to provide yet further examples of thedisclosure.

These and other changes can be made to the disclosure in light of theabove Detailed Description. While the above description describescertain examples, and describes the best mode contemplated, no matterhow detailed the above appears in text, the teachings can be practicedin many ways. Details of the system may vary considerably in itsimplementation details, while still being encompassed by the subjectmatter disclosed herein. As noted above, particular terminology usedwhen describing certain features or aspects of the disclosure should notbe taken to imply that the terminology is being redefined herein to berestricted to any specific characteristics, features, or aspects of thedisclosure with which that terminology is associated. In general, theterms used in the following claims should not be construed to limit thedisclosure to the specific implementations disclosed in thespecification, unless the above Detailed Description section explicitlydefines such terms. Accordingly, the actual scope of the disclosureencompasses not only the disclosed implementations, but also allequivalent ways of practicing or implementing the disclosure under theclaims.

While certain aspects of the disclosure are presented below in certainclaim forms, the inventors contemplate the various aspects of thedisclosure in any number of claim forms. Any claims intended to betreated under 35 U.S.C. § 112(f) will begin with the words “means for”.Accordingly, the applicant reserves the right to add additional claimsafter filing the application to pursue such additional claim forms forother aspects of the disclosure.

The terms used in this specification generally have their ordinarymeanings in the art, within the context of the disclosure, and in thespecific context where each term is used. Certain terms that are used todescribe the disclosure are discussed above, or elsewhere in thespecification, to provide additional guidance to the practitionerregarding the description of the disclosure. For convenience, certainterms may be highlighted, for example using capitalization, italics,and/or quotation marks. The use of highlighting has no influence on thescope and meaning of a term; the scope and meaning of a term is thesame, in the same context, whether or not it is highlighted. It will beappreciated that same element can be described in more than one way.

Consequently, alternative language and synonyms may be used for any oneor more of the terms discussed herein, nor is any special significanceto be placed upon whether or not a term is elaborated or discussedherein. Synonyms for certain terms are provided. A recital of one ormore synonyms does not exclude the use of other synonyms. The use ofexamples anywhere in this specification including examples of any termsdiscussed herein is illustrative only, and is not intended to furtherlimit the scope and meaning of the disclosure or of any exemplifiedterm. Likewise, the disclosure is not limited to various examples givenin this specification.)

Without intent to further limit the scope of the disclosure, examples ofinstruments, apparatus, methods and their related results according tothe examples of the present disclosure are given below. Note that titlesor subtitles may be used in the examples for convenience of a reader,which in no way should limit the scope of the disclosure. Unlessotherwise defined, all technical and scientific terms used herein havethe same meaning as commonly understood by one of ordinary skill in theart to which this disclosure pertains. In the case of conflict, thepresent document, including definitions will control.

Some portions of this description describe examples in terms ofalgorithms and symbolic representations of operations on information.These algorithmic descriptions and representations are commonly used bythose skilled in the data processing arts to convey the substance oftheir work effectively to others skilled in the art. These operations,while described functionally, computationally, or logically, areunderstood to be implemented by computer programs or equivalentelectrical circuits, microcode, or the like. Furthermore, it has alsoproven convenient at times, to refer to these arrangements of operationsas modules, without loss of generality. The described operations andtheir associated modules may be embodied in software, firmware,hardware, or any combinations thereof.

Any of the steps, operations, or processes described herein may beperformed or implemented with one or more hardware or software modules,alone or in combination with other devices. In some examples, a softwaremodule is implemented with a computer program object comprising acomputer-readable medium containing computer program code, which can beexecuted by a computer processor for performing any or all of the steps,operations, or processes described.

Examples may also relate to an apparatus for performing the operationsherein. This apparatus may be specially constructed for the requiredpurposes, and/or it may comprise a general-purpose computing deviceselectively activated or reconfigured by a computer program stored inthe computer. Such a computer program may be stored in a non-transitory,tangible computer readable storage medium, or any type of media suitablefor storing electronic instructions, which may be coupled to a computersystem bus. Furthermore, any computing systems referred to in thespecification may include a single processor or may be architecturesemploying multiple processor designs for increased computing capability.

Examples may also relate to an object that is produced by a computingprocess described herein. Such an object may comprise informationresulting from a computing process, where the information is stored on anon-transitory, tangible computer readable storage medium and mayinclude any implementation of a computer program object or other datacombination described herein.

The language used in the specification has been principally selected forreadability and instructional purposes, and it may not have beenselected to delineate or circumscribe the subject matter. It istherefore intended that the scope of this disclosure be limited not bythis detailed description, but rather by any claims that issue on anapplication based hereon. Accordingly, the disclosure of the examples isintended to be illustrative, but not limiting, of the scope of thesubject matter, which is set forth in the following claims.

Specific details were given in the preceding description to provide athorough understanding of various implementations of systems andcomponents for a contextual connection system. It will be understood byone of ordinary skill in the art, however, that the implementationsdescribed above may be practiced without these specific details. Forexample, circuits, systems, networks, processes, and other componentsmay be shown as components in block diagram form in order not to obscurethe embodiments in unnecessary detail. In other instances, well-knowncircuits, processes, algorithms, structures, and techniques may be shownwithout unnecessary detail in order to avoid obscuring the embodiments.

It is also noted that individual implementations may be described as aprocess which is depicted as a flowchart, a flow diagram, a data flowdiagram, a structure diagram, or a block diagram. Although a flowchartmay describe the operations as a sequential process, many of theoperations can be performed in parallel or concurrently. In addition,the order of the operations may be re-arranged. A process is terminatedwhen its operations are completed, but could have additional steps notincluded in a figure. A process may correspond to a method, a function,a procedure, a subroutine, a subprogram, etc. When a process correspondsto a function, its termination can correspond to a return of thefunction to the calling function or the main function.

Client devices, network devices, and other devices can be computingsystems that include one or more integrated circuits, input devices,output devices, data storage devices, and/or network interfaces, amongother things. The integrated circuits can include, for example, one ormore processors, volatile memory, and/or non-volatile memory, amongother things. The input devices can include, for example, a keyboard, amouse, a key pad, a touch interface, a microphone, a camera, and/orother types of input devices. The output devices can include, forexample, a display screen, a speaker, a haptic feedback system, aprinter, and/or other types of output devices. A data storage device,such as a hard drive or flash memory, can enable the computing device totemporarily or permanently store data. A network interface, such as awireless or wired interface, can enable the computing device tocommunicate with a network. Examples of computing devices includedesktop computers, laptop computers, server computers, hand-heldcomputers, tablets, smart phones, personal digital assistants, digitalhome assistants, as well as machines and apparatuses in which acomputing device has been incorporated.

The term “computer-readable medium” includes, but is not limited to,portable or non-portable storage devices, optical storage devices, andvarious other mediums capable of storing, containing, or carryinginstruction(s) and/or data. A computer-readable medium may include anon-transitory medium in which data can be stored and that does notinclude carrier waves and/or transitory electronic signals propagatingwirelessly or over wired connections. Examples of a non-transitorymedium may include, but are not limited to, a magnetic disk or tape,optical storage media such as compact disk (CD) or digital versatiledisk (DVD), flash memory, memory or memory devices. A computer-readablemedium may have stored thereon code and/or machine-executableinstructions that may represent a procedure, a function, a subprogram, aprogram, a routine, a subroutine, a module, a software package, a class,or any combination of instructions, data structures, or programstatements. A code segment may be coupled to another code segment or ahardware circuit by passing and/or receiving information, data,arguments, parameters, or memory contents. Information, arguments,parameters, data, etc. may be passed, forwarded, or transmitted via anysuitable means including memory sharing, message passing, token passing,network transmission, or the like.

The various examples discussed above may further be implemented byhardware, software, firmware, middleware, microcode, hardwaredescription languages, or any combination thereof. When implemented insoftware, firmware, middleware or microcode, the program code or codesegments to perform the necessary tasks (e.g., a computer-programproduct) may be stored in a computer-readable or machine-readablestorage medium (e.g., a medium for storing program code or codesegments). A processor(s), implemented in an integrated circuit, mayperform the necessary tasks.

Where components are described as being “configured to” perform certainoperations, such configuration can be accomplished, for example, bydesigning electronic circuits or other hardware to perform theoperation, by programming programmable electronic circuits (e.g.,microprocessors, or other suitable electronic circuits) to perform theoperation, or any combination thereof.

The various illustrative logical blocks, modules, circuits, andalgorithm steps described in connection with the implementationsdisclosed herein may be implemented as electronic hardware, computersoftware, firmware, or combinations thereof. To clearly illustrate thisinterchangeability of hardware and software, various illustrativecomponents, blocks, modules, circuits, and steps have been describedabove generally in terms of their functionality. Whether suchfunctionality is implemented as hardware or software depends upon theparticular application and design constraints imposed on the overallsystem. Skilled artisans may implement the described functionality invarying ways for each particular application, but such implementationdecisions should not be interpreted as causing a departure from thescope of the present disclosure.

The techniques described herein may also be implemented in electronichardware, computer software, firmware, or any combination thereof. Suchtechniques may be implemented in any of a variety of devices such asgeneral purposes computers, wireless communication device handsets, orintegrated circuit devices having multiple uses including application inwireless communication device handsets and other devices. Any featuresdescribed as modules or components may be implemented together in anintegrated logic device or separately as discrete but interoperablelogic devices. If implemented in software, the techniques may berealized at least in part by a computer-readable data storage mediumcomprising program code including instructions that, when executed,performs one or more of the methods described above. Thecomputer-readable data storage medium may form part of a computerprogram product, which may include packaging materials. Thecomputer-readable medium may comprise memory or data storage media, suchas random access memory (RAM) such as synchronous dynamic random accessmemory (SDRAM), read-only memory (ROM), non-volatile random accessmemory (NVRAM), electrically erasable programmable read-only memory(EEPROM), FLASH memory, magnetic or optical data storage media, and thelike. The techniques additionally, or alternatively, may be realized atleast in part by a computer-readable communication medium that carriesor communicates program code in the form of instructions or datastructures and that can be accessed, read, and/or executed by acomputer, such as propagated signals or waves.

The program code may be executed by a processor, which may include oneor more processors, such as one or more digital signal processors(DSPs), general purpose microprocessors, an application specificintegrated circuits (ASICs), field programmable logic arrays (FPGAs), orother equivalent integrated or discrete logic circuitry. Such aprocessor may be configured to perform any of the techniques describedin this disclosure. A general purpose processor may be a microprocessor;but in the alternative, the processor may be any conventional processor,controller, microcontroller, or state machine. A processor may also beimplemented as a combination of computing devices, e.g., a combinationof a DSP and a microprocessor, a plurality of microprocessors, one ormore microprocessors in conjunction with a DSP core, or any other suchconfiguration. Accordingly, the term “processor,” as used herein mayrefer to any of the foregoing structure, any combination of theforegoing structure, or any other structure or apparatus suitable forimplementation of the techniques described herein. In addition, in someaspects, the functionality described herein may be provided withindedicated software modules or hardware modules configured forimplementing a suspended database update system.

The foregoing detailed description of the technology has been presentedfor purposes of illustration and description. It is not intended to beexhaustive or to limit the technology to the precise form disclosed.Many modifications and variations are possible in light of the aboveteaching. The described embodiments were chosen in order to best explainthe principles of the technology, its practical application, and toenable others skilled in the art to utilize the technology in variousembodiments and with various modifications as are suited to theparticular use contemplated. It is intended that the scope of thetechnology be defined by the claim.

What is claimed is:
 1. A computer-implemented method comprising:repeatedly capturing customer data associated with various data sourcesin real-time as the customer data is generated, wherein the customerdata includes dynamically changing financial customer data over a periodof time, and wherein the customer data corresponds to a set ofcustomers; computing non-parametric rates of change corresponding to thedynamically changing financial customer data associated with the variousdata sources; generating a set of vectors, wherein the set of vectorsare generated in real-time as the customer data is received, and whereinthe set of vectors are generated using the non-parametric rates ofchange according to the dynamically changing financial customer dataassociated with the various data sources; mapping the set of vectors todirectionally similar template states, wherein mapping includesperforming unsupervised clustering of the set of vectors; generating atime series of the directionally similar template states, wherein thetime series is generated using the set of vectors over time and based onthe dynamically changing financial customer data associated with thevarious data sources; generating one or more features associated withthe time series, wherein a feature is generated using a sequencecorresponding to one or more directionally similar template states inthe time series, and wherein generating features includes running thetime series through a classification algorithm; and determining a trendin the customer data associated with the various data sources, whereinthe trend is determined by applying the features of the time series to apre-defined model, and wherein the trend corresponds to a level ofstability associated with the set of customers.